什么是幂等操作?
在计算中,幂等操作是指使用相同的输入参数多次调用它时不会产生额外影响的操作。例如,从集合中删除一个项目可以被认为是对集合的幂等操作。
在数学中,幂等运算是 f(f(x)) = f(x) 的运算。例如,该abs()函数是幂等的,因为abs(abs(x)) = abs(x)对于所有x.
abs()
abs(abs(x)) = abs(x)
x
这些稍微不同的定义可以通过考虑数学定义中的 x 表示对象的状态来调和,而 f 是可能使该对象发生变异的操作。例如,考虑Pythonset及其discard方法。该discard方法从集合中删除一个元素,如果该元素不存在,则不执行任何操作。所以:
set
discard
my_set.discard(x)
与两次执行相同操作的效果完全相同:
my_set.discard(x) my_set.discard(x)
幂等操作通常用于网络协议的设计,其中执行操作的请求保证至少发生一次,但也可能发生多次。如果操作是幂等的,那么执行两次或更多次操作没有害处。
有关更多信息,请参阅有关幂等性的 Wikipedia 文章。
上面的答案以前有一些不正确和误导性的例子。以下 2014 年 4 月之前撰写的评论指的是较旧的修订版。